$some_var |
Переменные |
$some_var; // объявление переменной
$some_var = &$some_another_var; // & - жёсткая ссылка (привязка переменных)
|
|
Типы данных |
$some_var = 5; // число
$some_var = "Some string"; // строка
$some_var = true; // лог. тип (булевский)
|
true выводит 1, false пустую строку ("")
|
Числа |
$a = 15;
$b = 5;
$c = $a + $b; // сложение
$c = $a - $b; // вычитание
$c = $a * $b; // умножение
$c = $a / $b; // деление
$c = $a % $b; // остаток от деления
$a += 10; // аналог $a = $a + 10;
$a -= 10; // аналог $a = $a - 10;
$a *= 10; // аналог $a = $a * 10;
$a /= 10; // аналог $a = $a / 10;
$a++; // аналог $a = $a + 1;
$a--; // аналог $a = $a - 1;
$a = $a << 1; // побитовый сдвиг влево
$a = $a >> 1; // побитовый сдвиг вправо
|
Правила названия переменных такие же как в JS. Стиль названия переменных в php snake_case
|
Константы |
define("PI", 3.14); // объявление константы
echo defined("PI"); // проверка на наличие константы (возвращает bool)
|
Константы принято называть с большой буквы.
Знак доллара в имени константы не пишется!
echo PI; и всё
|
Строки |
$var1 = "some_string1";
$var2 = "some_string2";
$var3 = $var1.$var2; // сложение строк, через точку
$var3 = $var1." some_text3 ".$var2; // можно вставлять любой текст
|
Если в двойные строковые кавычки вставлять названия переменных, таким образом "text and $some_var", то переменная $some_var будет парситься, как значение этой переменной, а не как текст (работают спецсимволы \n \t).
Но если записать в одинарные кавычки, вот так:
'text and $some_var', то $some_var выведется символьно (спецсимволы НЕ работают)
|
Лог. операторы |
$num1 = 1;
$num2 = 2;
$num3 = 3;
$bool = $num2 > $num1; // больше
$bool = $num2 < $num1; // меньше
$bool = $num2 >= $num1; // больше или равно
$bool = $num2 <= $num1; // меньше или равно
$bool = $num2 == $num1; // равно
$bool = $num2 != $num1; // не равно
$bool = $num2 === $num1; // строго равно (по типу)
$bool = $num2 > $num1 || $num2 == $num1; // ИЛИ
$bool = $num2 > $num1 && $num3 == $num2; // И
$bool = !($num2 > $num1 && $num3 == $num2); // ! переворачивает логику
~ - унарный обратный оператор
^ - исключающее ИЛИ
0 ^ 1 // 1
0 ^ 0 // 0
1 ^ 1 // 0 (в этом и есть разница от обычного ИЛИ)
|
$bool будет возвращать true или false
|
Области видимости переменных |
global scope
$x1 = 1;
$y1 = 2;
$x1 = 10; // меняем на глобальном уровне
echo "Before: x1 = $x1, y1 = $y1<hr>"; // 10 2
local scope
function some_func() {
$x1 = 12; // $x1 = 12 только внутри этой функции
echo $x1.<hr>;
}
some_func(); // 12
echo $x1; // 10
Если требуется сделать видимость внутри функции глобальной, то в языке PHP есть для этого специальные ключевые слова:
function some_func() {
$GLOBALS["x1"] = 100; // теперь $x1 стала глобальной
} или так:
function some_func() {
global $x1 = 100; // теперь $x1 стала глобальной
}
static scope
function some_func() {
static $x1 = 100; // теперь $x1 стала глобальной внутри функций (статичной)
}
|
Глобальные переменные можно изменять в любом месте кода (что находится ниже в коде будет итоговым значением переменной).
Локальные переменные изменяются только внутри функций.
Статические переменные имеют глобальную область видимости, но только внутри функций
|